package org.example.demo3.service;

import org.example.demo3.dto.LoginDTO;
import org.example.demo3.dto.LoginResponseDTO;
import org.example.demo3.dto.RegisterDTO;
import org.example.demo3.dto.RegisterResponseDTO;
import org.example.demo3.dto.ResetPasswordDTO;
import org.example.demo3.dto.SendResetCodeDTO;
import org.example.demo3.dto.TokenDTO;
import org.example.demo3.dto.UpdateProfileDTO;
import org.example.demo3.vo.UserVO;
import org.example.demo3.vo.UserInfoVO;

public interface UserService {
    // 用户登录
    LoginResponseDTO login(LoginDTO loginDTO);

    // 获取用户基本信息
    UserVO getUserVO(Long userId);

    // 获取用户详细信息
    UserInfoVO getUserInfoVO(Long userId);

    // 刷新Token
    TokenDTO refreshToken(String refreshToken);
    
    // 用户注册
    RegisterResponseDTO register(RegisterDTO registerDTO);
    
    // 更新用户信息
    UserInfoVO updateProfile(Long userId, UpdateProfileDTO updateProfileDTO);
    
    // 发送重置密码验证码
    void sendResetCode(SendResetCodeDTO sendResetCodeDTO);
    
    // 重置密码
    void resetPassword(ResetPasswordDTO resetPasswordDTO);
}